package com.liujit.upms.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.liujit.upms.domain.model.SysOauthClient;
import com.liujit.upms.domain.params.SysOauthClientParams;
import com.liujit.upms.domain.query.SysOauthClientQuery;
import com.liujit.upms.domain.result.SysOauthClientResult;
import com.liujit.common.domain.params.BaseParams;
import com.liujit.common.domain.result.PageBean;

/**
 * @Description 系统认证客户端Service
 * @Author liujun
 * @Date 2021-07-02 15:00:06
 */
public interface SysOauthClientService extends IService<SysOauthClient> {

    /**
     * 根据系统认证客户端分页查询条件，分页查询系统认证客户端列表
     *
     * @param query 系统认证客户端分页查询条件
     * @return 分页列表结果
     * @author: liujun
     * @date: 2021/6/23 5:02 下午
     */
    PageBean<SysOauthClientResult> getPage(SysOauthClientQuery query);

    /**
     * 根据系统认证客户端添加/修改请求参数，添加/修改系统认证客户端
     *
     * @param params 系统认证客户端添加/修改请求参数
     * @return 添加/修改结果
     * @author: liujun
     * @date: 2021-07-02 15:00:06
     */
    Boolean save(SysOauthClientParams params);

    /**
     * 根据系统认证客户端id，查询系统认证客户端
     *
     * @param id 系统认证客户端id
     * @return 查询结果
     * @author: liujun
     * @date: 2021-07-02 15:00:06
     */
    SysOauthClientResult get(Long id);

    /**
     * 根据系统认证客户端删除请求参数，删除系统认证客户端
     *
     * @param params 系统认证客户端删除请求参数
     * @return 删除结果
     * @author: liujun
     * @date: 2021-07-02 15:00:06
     */
    Boolean del(BaseParams params);

    /**
     * 根据系统认证客户端启用请求参数，启用系统认证客户端
     *
     * @param params 系统认证客户端启用请求参数
     * @return 启用结果
     * @author: liujun
     * @date: 2021-07-02 15:00:06
     */
    Boolean enabled(BaseParams params);

    /**
     * 根据系统认证客户端禁用请求参数，禁用系统认证客户端
     *
     * @param params 系统认证客户端禁用请求参数
     * @return 禁用结果
     * @author: liujun
     * @date: 2021-07-02 15:00:06
     */
    Boolean disabled(BaseParams params);

    /**
     * 根据系统认证客户端唯一标识查询系统认证客户端条数
     * @param clientId 客户端唯一标识
     * @return 系统认证客户端条数
     * @author: liujun
     * @date: 2021/6/27 1:27 下午
     */
    Integer getCountByClientId(String clientId);

    /**
     * 根据系统认证客户端唯一标识查询系统认证客户端
     * @param clientId 客户端唯一标识
     * @return 系统认证客户端
     * @author: liujun
     * @date: 2021/6/27 1:24 下午
     */
    SysOauthClient getByClientId(String clientId);
}
